package day02;
/**  数据类型转换（从右往左转换）*/

public class DateTypeCastDemo {
    public static void main(String[] args) {
        //两种方式：

        int a = 5;
        long b = a ;  //自动类型转换
        int c = (int)b;  //强制类型转换

        long d = 5;    //自动类型转换
        double e = 5;  //自动类型转换
        System.out.println(e);  //5.0，默认保留一位小数

        long f = 10000000000L;
        int g = (int)f;  //强制类型转换
        System.out.println(g);  //1410065408，强制类型转换有可能发生溢出

        double h = 25.789;
        int i = (int)h;
        System.out.println(i);  //25，强制类型转换有可能丢失精度


        //两点转换规则：
        //1.整数直接量可以直接赋值给比byte,short,char，但是不能超出范围
        //2.byte,short,char型数据参与运算时，先一律转换为int在运算
        byte b1 = 5;  //5为直接量
        byte b2 = 6;
        byte b3 = (byte)(b1+b2);

        System.out.println(2+2);       //4
        System.out.println(2+'2');     //52,2加上'2'的码50
        System.out.println('2'+'2');   //100，'2'的码50，加上'2'的,50
        System.out.println('2');       //2，因为没有运算，所以输出的是字符2
        System.out.println("2"+"2");   //22,字符串拼接

    }
}
